home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Ubuntu 9.10 PL / karmelkowy-koliberek-desktop-9.10-i386-PL.iso / casper / filesystem.squashfs / usr / share / hplip / ui4 / linefeedcaldialog.py < prev    next >
Text File  |  2009-10-09  |  4KB  |  126 lines

  1. # -*- coding: utf-8 -*-
  2. #
  3. # (c) Copyright 2001-2008 Hewlett-Packard Development Company, L.P.
  4. #
  5. # This program is free software; you can redistribute it and/or modify
  6. # it under the terms of the GNU General Public License as published by
  7. # the Free Software Foundation; either version 2 of the License, or
  8. # (at your option) any later version.
  9. #
  10. # This program is distributed in the hope that it will be useful,
  11. # but WITHOUT ANY WARRANTY; without even the implied warranty of
  12. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  13. # GNU General Public License for more details.
  14. #
  15. # You should have received a copy of the GNU General Public License
  16. # along with this program; if not, write to the Free Software
  17. # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
  18. #
  19. # Authors: Don Welch
  20. #
  21.  
  22. # Std Lib
  23. import operator
  24.  
  25. # Local
  26. from base.g import *
  27. from base import device, utils, maint
  28. #from prnt import cups
  29. from base.codes import *
  30. from ui_utils import *
  31.  
  32. # Qt
  33. from PyQt4.QtCore import *
  34. from PyQt4.QtGui import *
  35.  
  36. # Ui
  37. from linefeedcaldialog_base import Ui_Dialog
  38. from deviceuricombobox import DEVICEURICOMBOBOX_TYPE_FAX_ONLY
  39.  
  40.  
  41. class LineFeedCalDialog(QDialog, Ui_Dialog):
  42.     def __init__(self, parent, device_uri):
  43.         QDialog.__init__(self, parent)
  44.         self.setupUi(self)
  45.         self.device_uri = device_uri
  46.         self.initUi()
  47.         QTimer.singleShot(0, self.updateUi)
  48.  
  49.  
  50.     def initUi(self):
  51.         # connect signals/slots
  52.         self.connect(self.CancelButton, SIGNAL("clicked()"), self.CancelButton_clicked)
  53.         self.connect(self.CalibrateButton, SIGNAL("clicked()"), self.CalibrateButton_clicked)
  54.         self.connect(self.DeviceComboBox, SIGNAL("DeviceUriComboBox_noDevices"), self.DeviceUriComboBox_noDevices)
  55.         self.connect(self.DeviceComboBox, SIGNAL("DeviceUriComboBox_currentChanged"), self.DeviceUriComboBox_currentChanged)
  56.         self.DeviceComboBox.setFilter({'linefeed-cal-type': (operator.gt, 0)})
  57.  
  58.         # Application icon
  59.         self.setWindowIcon(QIcon(load_pixmap('hp_logo', '128x128')))
  60.  
  61.         if self.device_uri:
  62.             self.DeviceComboBox.setInitialDevice(self.device_uri)
  63.  
  64.  
  65.     def updateUi(self):
  66.         self.DeviceComboBox.updateUi()
  67.         self.LoadPaper.setButtonName(self.__tr("Calibrate"))
  68.         self.LoadPaper.updateUi()
  69.  
  70.  
  71.     def DeviceUriComboBox_currentChanged(self, device_uri):
  72.         self.device_uri = device_uri
  73.         # Update
  74.  
  75.  
  76.     def DeviceUriComboBox_noDevices(self):
  77.         FailureUI(self, self.__tr("""<b>No devices that support line feed calibration found.</b><p>Click <i>OK</i> to exit.</p>"""))
  78.         self.close()
  79.  
  80.  
  81.     def CancelButton_clicked(self):
  82.         self.close()
  83.  
  84.  
  85.     def CalibrateButton_clicked(self):
  86.         d = None
  87.  
  88.         try:
  89.             try:
  90.                 d = device.Device(self.device_uri)
  91.             except Error:
  92.                 CheckDeviceUI(self)
  93.                 return
  94.  
  95.             linefeed_type = d.linefeed_cal_type
  96.  
  97.             try:
  98.                 d.open()
  99.             except Error:
  100.                 CheckDeviceUI(self)
  101.             else:
  102.                 if d.isIdleAndNoError():
  103.                     if linefeed_type == LINEFEED_CAL_TYPE_OJ_K550: # 1
  104.                         maint.linefeedCalType1(d, lambda : True)
  105.  
  106.                     elif linefeed_type == LINEFEED_CAL_TYPE_OJ_PRO_L7XXX: # 2
  107.                         maint.linefeedCalType2(d, lambda : True)
  108.  
  109.                 else:
  110.                     CheckDeviceUI(self)
  111.  
  112.         finally:
  113.             if d is not None:
  114.                 d.close()
  115.  
  116.         self.close()
  117.  
  118.     #
  119.     # Misc
  120.     #
  121.  
  122.     def __tr(self,s,c = None):
  123.         return qApp.translate("LineFeedCalDialog",s,c)
  124.  
  125.  
  126.